package com.hsurosy.hsuchain.nft.api.pay.service;

import com.hsurosy.hsuchain.nft.api.pay.model.PayOrderVO;
import com.hsurosy.hsuchain.nft.api.pay.request.PayCreateRequest;
import com.hsurosy.hsuchain.nft.api.pay.request.PayQueryRequest;
import com.hsurosy.hsuchain.nft.api.pay.response.PayCreateResponse;

/**
 * 支付门面服务接口
 *
 * @Author Hsu琛君珩
 * @Date 2024-10-04 17:14
 * @Description
 * @Version: v1.0.0
 */
public interface PayFacadeService {

    /**
     * 生成支付链接
     *
     * @param payCreateRequest 支付创建请求
     * @return 支付创建响应，包含支付链接
     */
    public PayCreateResponse generatePayUrl(PayCreateRequest payCreateRequest);

    /**
     * 查询支付订单列表
     *
     * @param payQueryRequest 支付查询请求
     * @return 支付订单列表的多重响应
     */
    public MultiResponse<PayOrderVO> queryPayOrders(PayQueryRequest payQueryRequest);

    /**
     * 查询单个支付订单
     *
     * @param payOrderId 支付订单ID
     * @return 单个支付订单的响应
     */
    public SingleResponse<PayOrderVO> queryPayOrder(String payOrderId);

    /**
     * 查询单个支付订单
     *
     * @param payOrderId 支付订单ID
     * @param payerId    付款人ID
     * @return 单个支付订单的响应
     */
    public SingleResponse<PayOrderVO> queryPayOrder(String payOrderId, String payerId);
}
